#ifndef _DD_SPLINE3_H_
#define _DD_SPLINE3_H_

#include "dd_base.h"
#include "math/spline3.h"

namespace dd 
{
///////////////////////////////////////////////////////
///	\brief	Base class for debug shapes
///////////////////////////////////////////////////////
class Spline3 : public PrimitiveBase
{
public:
    /**
     * Initialize class
     */
					Spline3();

    /**
     * Destroy class
     */
	virtual			~Spline3();

    /**
     * Render to buffer
     * @param   _pBuffer    Buffer to render into
     */
	virtual void	Render(DBG_BUFFER* _pBuffer);

    /**
     * Setup primitive
     * @param _pSpline      Spline3 to visualize
     * @param _dT           Delta between steps (number of segments = (Spline3 total time / dT)
     * @param _Color        Set the colour of the sphere
     * @param _Arrow        Draw an arrow-head at destination ?
     */
    void	Setup(math::Spline3* _pSpline, float _dT = 0.01f, COLOR _Color = ColorRGBA(255, 255, 255), bool _Arrow = false);
private:
	math::Spline3*   m_pSpline;      /// spline to visualize
	float			m_dT;           /// Delta between steps (number of segments = (Spline3 total time / dT)
	bool			m_Arrow;        /// Draw an arrow-head at destination ?

};

};// End namespace dd


#endif //_DD_SPLINE3_H_